This invention relates generally to computer software and, more specifically, to a system and method for providing distributed, directory-enabled applications using an extensible Markup Language (xe2x80x9cXMLxe2x80x9d) application program interface (xe2x80x9cAPIxe2x80x9d) framework.
Personal computers or workstations may be linked in a computer network to facilitate the sharing of data, applications, files, and other resources. One common type of computer network is a client/server network, where some computers act as servers and others as clients. In a client/server network, the sharing of resources is accomplished through the use of one or more servers. Each server includes a processing unit that is dedicated to managing centralized resources and to sharing these resources with other servers and/or various personal computers and workstations, which are known as the xe2x80x9cclientsxe2x80x9d of the server.
Different software applications are available through the server to the clients as network resources. The clients may also utilize xe2x80x9cstandalonexe2x80x9d applications, which may be installed only on a client and not available through the network. The applications may perform a variety of tasks, such as word processing, email, web browsing, and many more. The applications may be written in a variety of programming languages as long as the applications are compiled to function on the underlying operating systems used by the server and the clients.
Each application is constructed using a native API that provides a set of routines, protocols, and tools. This set provides the building blocks that allow programmers to enable the applications which use the API to communicate with the operating system and other programs. Large applications such as operating systems may have hundreds of API calls to provide other applications the interfaces needed for effective communication and access to the operating system""s services. Smaller applications may have a very limited set of API calls.
Because APIs are constructed for a specific application in a given programming language and targeted at a particular platform or operating system, they generally cannot be used as an interface for another application without making nontrivial modifications. In addition, such highly specific APIs make it difficult for applications to communicate if, for example, the applications were written using different programming languages or for use on different operating systems.
It is desired to provide an XML integrated services (xe2x80x9cXISxe2x80x9d) framework utilizing a flexible, cross-protocol, cross-language API for distributed directory-enabled applications by providing both a high level of interactivity and modular dynamic components with a common object model for both clients and servers.
In response to these and other problems, an improved system and method is provided for bridging in a distributed directory-enabled application environment using an eXtensible Markup Language (xe2x80x9cXMLxe2x80x9d) application program interface, where the interface includes a preprocessor using a configuration file. The method includes establishing a set of foundational bridge components and a set of task specific bridge parameters which are defined in the configuration file. The bridge is dynamically generated so that it includes the components and parameters, which enable applications in the distributed environment to communicate.
The set of foundational bridge components may include thread safeness, which enables the bridge to utilize semaphore access control to control thread access, smart pointers, which enable the bridge to automatically manage the memory it requires, and opaque interfaces, which enable the bridge to maintain interface compatibility when implementation changes occur in an interface.